// 组织树对象    当前处理树的node
var sysOrgTree, dealTreeNode;
var isAddSysOrg = false, isUpdateSysOrg = false;
var idIndex = [ 'codeOrgObj2', 'nameOrgObj2', 'fullNameOrgObj2',
		'orgTypeOrgObj2', 'orgEmailOrgObj2', 'postalcodeOrgObj2',
		'telephonenumberOrgObj2', 'facsimiletelephonenumberOrgObj2',
		'orgStartDateOrgObj2', 'managerIdOrgObj2' ];
var idIndex2 = [ 'codeOrgObj', 'nameOrgObj', 'fullNameOrgObj', 'orgTypeOrgObj',
		'orgEmailOrgObj', 'postalcodeOrgObj', 'telephonenumberOrgObj',
		'facsimiletelephonenumberOrgObj', 'orgStartDateOrgObj',
		'managerIdOrgObj' ];
var idIndex3 = [ 'codeOrgObj', 'nameOrgObj', 'fullNameOrgObj',
		'orgEmailOrgObj', 'postalcodeOrgObj', 'telephonenumberOrgObj',
		'facsimiletelephonenumberOrgObj', 'orgStartDateOrgObj' ];

var Fstart = false;
// 拖拽
function beforeDrag(treeId, treeNodes) {
	return false;
}

// 修改
function beforeEditName(treeId, treeNode) {
	// dealTreeNode = treeNode;
	// updateSysOrgShow(treeNode.id);
	// return true;
	return false;
}
function onRename() {
	return false;
}
// 删除
function beforeRemove(treeId, treeNode) {
	// if(treeNode.isParent){
	// alert('请先删除子组织');
	// return false;
	// }
	// return delSysOrg(treeNode.id,treeNode.name);
	return false;
}

// 展示删除按钮
function showRemoveBtn(treeId, treeNode) {
	return false;
}

// 展示修改按钮
function showRenameBtn(treeId, treeNode) {
	return false;
}

// 鼠标hover事件
function addHoverDom(treeId, treeNode) {
	// var sObj = $("#" + treeNode.tId + "_span");
	// if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
	// var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
	// + "' title='add node' onfocus='this.blur();'></span>";
	// sObj.after(addStr);
	// var btn = $("#addBtn_"+treeNode.tId);
	// // 点击添加按钮事件
	// if (btn) btn.bind("click", function(){
	// dealTreeNode = treeNode;
	// addShow(treeNode.id);
	// return false;
	// });
};

// 删除按钮
function removeHoverDom(treeId, treeNode) {
	$("#addBtn_" + treeNode.tId).unbind().remove();
};

// 基础设置
var setting = {
	view : {
		addHoverDom : addHoverDom,
		removeHoverDom : removeHoverDom,
		selectedMulti : false
	},
	edit : {
		enable : false,
		editNameSelectAll : false,
		showRemoveBtn : showRemoveBtn,
		showRenameBtn : showRenameBtn
	},
	data : {
		simpleData : {
			enable : true
		}
	},
	async:{
		enable: true,
		url:"../sysOrgController/loadOrgTreeData",
		autoParam:["id=pid"]
	},
	callback : {
		beforeDrag : beforeDrag,
		beforeEditName : beforeEditName,
		beforeRemove : beforeRemove,
		onRename : onRename,
		beforeClick : function(treeId, treeNode) {
			for (var i = 0; i < idIndex3.length; i++) {
				$('#' + idIndex3[i]).val("");
			}
			$("#managerIdOrgObj option[value='C']").attr("selected", true);
			$("#orgTypeOrgObj option[value='ORG']").attr("selected", true);
			if (0 != treeNode.id) {
				$('#contentField').addClass('HdClass');
				$('#form_horizontal2').show();
				showCurSysOrg(treeNode.id);
			}
			dealTreeNode = treeNode;
			/*
			 * var zTree = $.fn.zTree.getZTreeObj("tree"); if
			 * (treeNode.isParent) { zTree.expandNode(treeNode); return false; }
			 * else { alert(treeNode.id); return true; }
			 */
		}
	}
};

$(function() {
	// 初始化树
	initFrame();
	$('#contentField').addClass('HdClass');
	if(null==sysOrgTree){
		$.ajax({
			url:"loadOrgTreeData",
			data:{"pId":null},
			dataType : "json",
			type : "post",
			success : function(data){
				sysOrgTree = $.fn.zTree.init($("#tree"), setting, data);
			}
		})
	}
//	var rootNode = sysOrgTree.getNodes()[0];
//	sysOrgTree.expandNode(rootNode);
//	dealTreeNode = rootNode;
//	if (rootNode) {
//		showCurSysOrg(rootNode.id);
//	}
	isUpdateSysOrg = false;
	isAddSysOrg = false;
	// sysOrgTree.expandAll(true);
	//$('#sysOrgObjectForm').bootstrapValidator(validator);
});

// 初始化页面
function initFrame() {

	// $('#sysOrgObjectForm input').val('');
	// $('#form_horizontal2 div div').innerHTML = "";
	// $('#sysOrgObjectForm').removeAttr('action');

	$('#orgStartDateDiv').hide();
	$('#pCodeOrgDiv').hide();
	$('#pCodeOrgDiv2').hide();
	// $('#isUsingDiv').hide();
	$('#savebtn').hide();
	$('#updateBtn').hide();
	$('#returnBtn').hide();
	$('#returnBtn1').hide();
	$('#contentField').hide();
	// $('#contentField').removeAttr('disabled');
	// $('#managerIdOrgObj').val('C');
	resetValidator();
}

// 返回主页面
function returnSysOrg() {
	$('#orgStartDateDiv').show();
	$('#pCodeOrgDiv').hide();
	$('#pCodeOrgDiv2').hide();
	$('#form_horizontal2').show();
	$('#contentField').hide();

	$('#addbtn').show();
	$('#editbtn').show();
	$('#deletebtn').show();
	$('#selctUser').show();
	$('#selectRole').show();

	$('#updateBtn').hide();
	$('#returnBtn').hide();
	$('#returnBtn1').hide();
	$('#savebtn').hide();
    isUpdateSysOrg = false;
    isAddSysOrg = false;

}

function resetValidator() {
	if ($('#sysOrgObjectForm').data('bootstrapValidator')) {
		$('#sysOrgObjectForm').data('bootstrapValidator').resetForm(false);
	}
}

// 展示主页面
// function mainShow(){
// initFrame();
// }

// 展示添加页面
function addShow(id) {
	$('#sysOrgObjectForm').attr('action', 'javascript:addSysOrg();');
	$('#modifyInfoDiv').hide();
	$('#savebtn').show();
	$('#parentIdOrgObj').val(id);
}

// 添加至后台
function addSysOrg() {
	if (confirm('确定添加此组织吗？')) {
	if ('C' == $('#managerIdOrgObj').val()) {
		$('#managerIdVal').val('');
	} else {
		$('#managerIdVal').val($('#parentIdOrgObj').val());
	}
	$.post('saveSysOrg.action', $("#sysOrgObjectForm").serialize(), function(
			sysOrg) {
		dealTreeNode = sysOrgTree.addNodes(dealTreeNode, sysOrg)[0];
		$('#contentField div div input').val("");
		$('#contentField').addClass('HdClass');
		$('#form_horizontal2').show();
		$('#contentField').hide();
		// $('#contentField').attr('disabled','disabled');
		// $('#pCodeOrgDiv').hide();
		// $('#contentField').addClass('');
		$('#addbtn').show();
		$('#editbtn').show();
		$('#deletebtn').show();
		$('#savebtn').hide();
		$('#idOrgObj').val(sysOrg.id);
		isAddSysOrg = false;
		// initFrame();
		showCurSysOrg(dealTreeNode.id);// 展示当前组织信息
		 resetValidator();
	});
  }
}

// 确认是否删除组织并后台删除数据
function delSysOrg(id, name) {
	if (confirm('确定删除组织名为' + name + '的组织吗？')) {
		$.post('delSysOrg.action', {
			'ids' : id
		}, function() {
			return true;
		});
	} else {
		return false;
	}
}

// 展示修改页面
function updateSysOrgShow(id) {
	initFrame();
	$.post('searchSysOrgById.action', {
		'id' : id
	}, function(sysOrg) {
		$('#modifyInfoDiv').show();
		$('#updateBtn').show();
		$('#sysOrgObjectForm').attr('action', 'javascript:updateSysOrg();');
		for ( var col in sysOrg) {
			if ('managerId' == col) {
				$('#managerId').val(sysOrg[col]);
				if (sysOrg[col] == sysOrg['id']) {
					$('#managerIdOrgObj').val('C');
				} else {
					$('#managerIdOrgObj').val('P');
				}
			} else {
				var obj = $('#' + col + 'OrgObj');
				if (obj.size() > 0) {
					obj.val(sysOrg[col]);
				}
			}
		}
	});
}

// 修改数据并返回至主页面
function updateSysOrg() {
	/*
	 * if('C' == $('#managerIdOrgObj').val()){
	 * $('#managerIdVal').val($('#idOrgObj').val()); }else{
	 * $('#managerIdVal').val($('#parentIdOrgObj').val()); }
	 */
	var idc = $('#idOrgObj').val();
	$.post('updateSysOrgOrg.action', $("#sysOrgObjectForm").serialize(),
			function(sysOrg) {
				sysOrgTree.editName(dealTreeNode);
				sysOrgTree.cancelEditName($('#nameOrgObj').val());
				// $('#contentField').attr('disabled','disabled');
				$('#addbtn').show();
				$('#editbtn').show();
				$('#deletebtn').show();
				$('#updateBtn').hide();

				$('#contentField').hide();
				$('#form_horizontal2').show();
				$('#modifyInfoDiv').addClass('HdClass');
				$('#contentField').addClass('HdClass');

				showCurSysOrg(idc);
				isUpdateSysOrg = false;
				// initFrame();
				// resetValidator();
			});
}
var controlLevelObj={
    100:'集团公司',
    200:'省公司',
    300:'地市公司',
    400:'区县公司'
};

// 展示当前组织信息
function showCurSysOrg(id) {
	initFrame();
	$('#addbtn').show();
	$('#editbtn').show();
	$('#deletebtn').show();
	$('#updateBtn').hide();
	$('#selectRole').show();
	$('#selctUser').show();
	// $('#orgTypeOrgObj').empty();
	// $('#managerIdOrgObj').empty();
	for (var i = 0; i < idIndex.length; i++) {
		var xx = document.getElementById(idIndex[i]);
		if (xx != null)
			xx.innerHTML = '';
		// xx.innerHTML.style.lineHeight = 0;
	}

	Fstart = true;
	$.post('searchSysOrgById.action', {
		'id' : id
	}, function(sysOrg) {
		$('#orgStartDateDiv').show();
		// $('#isUsingDiv').show();
		for ( var col in sysOrg) {
            if("controlLevel" == col) {
                $('#orgControlLevelOrgObj2').html(controlLevelObj[sysOrg[col]]);
            }if ('managerId' == col) {
				$('#managerId').val(sysOrg[col]);
				if (sysOrg[col] == sysOrg['id']) {
					// $('#managerIdOrgObj').val('C');
					var txt = document.createTextNode('当前组织范围');
					document.getElementById('managerIdOrgObj2')
							.appendChild(txt);
				} else {
					// $('#managerIdOrgObj').val('P');
					var txt = document.createTextNode('上级组织范围');
					document.getElementById('managerIdOrgObj2')
							.appendChild(txt);
				}
			} else if (col == 'orgType') {
				var t1 = document.createTextNode('公司组织');
				var t2 = document.createTextNode('部门');
				if (sysOrg[col] == 'ORG')
					document.getElementById('orgTypeOrgObj2').appendChild(t1);
				if (sysOrg[col] == 'DEPT')
					document.getElementById('orgTypeOrgObj2').appendChild(t2);
			} else {
				var obj = $('#' + col + 'OrgObj2');
				var obj2 = document.getElementById(col + 'OrgObj2');

				if (obj.size() > 0) {
					// obj.val(sysOrg[col]);
					var txt = document.createTextNode(sysOrg[col]);
					obj2.appendChild(txt);
				}
			}

			if (col == 'id')
				$('#idOrgObj').val(sysOrg[col]);
			if (col == 'parentId')
				$('#parentIdOrgObj').val(sysOrg[col]);
			if (col == 'name')
				$('#currentName').val(sysOrg[col]);
		}
		$('#contentField').attr('disabled', 'disabled');
		isUpdateSysOrg = false;
		isAddSysOrg = false;
	});
}

// 刷新站点树
function refreshTree() {
	$.post('refreshTree.action', {}, function(data) {
		sysOrgTree.destroy('tree');
		sysOrgTree = $.fn.zTree.init($("#tree"), setting, data);
		var rootNode = sysOrgTree.getNodes()[0];
		sysOrgTree.expandNode(rootNode);
		dealTreeNode = rootNode;
		showCurSysOrg(rootNode.id);
		isUpdateSysOrg = false;
		isAddSysOrg = false;
		// sysOrgTree.expandAll(true);
	});
}

// 展开所有
function expandAll() {
	sysOrgTree.expandAll(true);
}

// 关闭所有
function collapseAll() {
	sysOrgTree.expandAll(false);
}

// 添加子组织
function addNewOrgShow() {
	if (isUpdateSysOrg) {
		alert('请先修改信息或重新选择组织修改');
		return;
	}
	$('#sysOrgObjectForm').bootstrapValidator(validator);
    $('#sysOrgObjectForm [type=text]').val('');
    $('#controlLevelOrgObj').val('100');
    $('#managerIdOrgObj').val('C');
	$('#form_horizontal2').hide();
	$('#modifyInfoDiv').addClass('HdClass');
	$('#pCodeOrgDiv').show();
	$('#contentField').removeClass('HdClass');
	$('#contentField').removeAttr('disabled');
	$('#contentField').show();
	$('#editbtn').hide();
	$('#deletebtn').hide();
	$('#addbtn').hide();
	$('#selctUser').hide();
	$('#selectRole').hide();
	$('#savebtn').show();
	$('#returnBtn').show();
	$('#returnBtn1').hide();
	isAddSysOrg = true;
	var pId = $('#idOrgObj').val();
	var pName = $('#currentName').val();
	// initFrame();
	$('#parentIdOrgObj').val(pId);
	$('#pCodeOrgObj').val(pName);
	$('#savebtn').html('保存');	
	
	// $('#sysOrgObjectForm').attr('action','javascript:addSysOrg();');
}

// 删除此组织
function delOrgShow() {
	if (1 == $('#idOrgObj').val()) {
		alert('根组织禁止删除');
		return;
	}
	if (dealTreeNode.isParent) {
		alert('请先删除子组织');
		return;
	}
	if (confirm('确定删除' + dealTreeNode.name + '组织？')) {
		var id = dealTreeNode.id;
		$.post('delSysOrg.action', {
			'ids' : id
		}, function() {
			var ptId = dealTreeNode.parentTId;
			sysOrgTree.removeNode(dealTreeNode);
			dealTreeNode = sysOrgTree.getNodeByTId(ptId);
			showCurSysOrg(dealTreeNode.id)
		});
	}
}

// 修改此组织
function updateOrgShow() {
	if (1 == $('#idOrgObj').val()) {
		alert('根组织禁止修改');
		return;
	}
	if (isAddSysOrg) {
		alert('请先填写添加信息或者重新选择需要修改的信息');
	}
	$('#sysOrgObjectForm').bootstrapValidator(validator);
	isUpdateSysOrg = true;
	$('#form_horizontal2').hide();
	$('#contentField').removeClass('HdClass');
	$('#contentField').removeAttr('disabled');
	$('#modifyInfoDiv').removeClass('HdClass');
	for (var i = 0; i < idIndex.length; i++) {
		var t = $('#' + idIndex[i])[0].innerHTML;
		if (t == null) {
			$('#' + idIndex2[i]).val('');
		} else if (t == '当前组织范围') {
			$("#managerIdOrgObj option[value='C']").attr("selected", true);
		} else if (t == '上级组织范围') {
			$("#managerIdOrgObj option[value='P']").attr("selected", true);
		} else if (t == '公司组织') {
			$("#orgTypeOrgObj option[value='ORG']").attr("selected", true);
		} else if (t == '部门') {
			$("#" + idIndex2[i] + " option[value='DEPT']").attr("selected",
					true);
		} else {
			$('#' + idIndex2[i]).val(t);
		}

	}
	$('#updateBtn').show();
	$('#returnBtn').hide();
	$('#returnBtn1').show();
	$('#editbtn').hide();
	$('#deletebtn').hide();
	$('#addbtn').hide();
	$('#selctUser').hide();
	$('#selectRole').hide();
	$('#form_horizontal2').hide();
	$('#contentField').show();
	$('#sysOrgObjectForm').attr('action', 'javascript:updateSysOrg();');
}

// 跳转至查询组织下所有员工页面
function toSelectOrgUser() {

	// var code = $('#codeOrgObj2').text();
	var url = "toSelectOrgUser.action?orgId=" + dealTreeNode.id;
	window
			.open(
					url,
					'',
					"height=450px,width=800px,toolbar=no,resizable=yes,location=no,top=150,left=200");
	// window.showModalDialog(url,'',"dialogHeight=400px;dialogWidth=800px;center=yes;resizable=yes;status=no");
}

// 跳转至查询组织下所有角色页面
function toSelectOrgRole() {

	// var code = $('#codeOrgObj2').text();
	var url = "toSelectOrgRole.action?orgId=" + dealTreeNode.id;
	window
			.open(
					url,
					'',
					"height=400px,width=800px,toolbar=no,resizable=yes,location=no,top=150,left=200");
}

var validator = {
	message : '请核对此字段的输入',
	feedbackIcons : {
		valid : 'glyphicon glyphicon-ok',
		invalid : 'glyphicon glyphicon-remove',
		validating : 'glyphicon glyphicon-refresh'
	},
	  submitHandler: function(validator, form, submitButton) {
		  var id=submitButton.attr("id");
		  if(id=="savebtn"){
			  addSysOrg();
		  }
		  if(id=="updateBtn"){
			  updateSysOrg();
		  }
      },
	fields : {
		code : {
			validators : {
				notEmpty : {
					message : '请输入组织编码'
				}
			}
		},
		name : {
			validators : {
				notEmpty : {
					message : '请输入组织名称'
				}
			}
		},
		fullName : {
			validators : {
				notEmpty : {
					message : '请输入组织全称'
				}
			}
		},
		orgEmail : {
			validators : {
				notEmpty : {
					message : '请输入email'
				},
				emailAddress : {
					message : '请检查Email拼写'
				}
			}
		},
		postalcode : {
			validators : {
				regexp : {
					regexp : /^[0-9]+$/,
					message : '请检查邮政编码'
				}
			}
		},
		telephonenumber : {
			validators : {
				notEmpty : {
					message : '请输入办公电话'
				},			
				regexp : {
					regexp : /(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})/,
					message : '请检查办公电话'
				}
			}
		},
		facsimiletelephonenumber : {
			validators : {
				regexp : {
					regexp : /(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})/,
					message : '请检查传真号码'
				}
			}
		}
	}
};
var total = document.documentElement.clientHeight;
var colHeight = total - 30 - document.getElementById("ztreeDiv").offsetTop;
document.getElementById("ztreeDiv").style.height = colHeight + "px";